SViewFrame for iOS :在SViewBase的基础上增加了模型属性操作、动画播放,测量,批注,漫游等功能的操作界面, 方便用户快速集成。
如仅需要基本的浏览功能或需要个性化搭建展示界面的用户,可选择 SViewBase for iOS 集成控件。
集成之前需要熟悉集成环境、SViewFrame for iOS的文件描述以及Xcode的工程配置,以便快速准确的集成相关功能界面。详细集成准备如下所示 :
集成环境
SViewFrame for iOS 开发库集成需要的环境:
  • 开发环境:Xcode 7.0以上版本
  • 系统环境: macOS 10.11以上版本
  • 运行环境: iOS 8.0以上,仅支持真机运行
文件描述
SViewControl控件包包括:SViewFrame.framework、SViewBase.framework、SViewFrame.bundle、zh-Hans.lproj文件夹、en.lproj文件夹
  • SViewFrame.framework:应用层UI界面集成库。
  • SViewBase.framework:功能接口集成库。
  • SViewFrame.bundle:资源包。
  • zh-Hans.lproj文件夹:中文本地化语言包。
  • en.lproj文件夹:英文本地化语言包。
解压SViewFrame控件包,得到SViewFrame.framework等文件,如下图所示:
Xcode配置
Xcode配置过程如下:
  • Xcode工程右侧相应目录下单击右键选择【Add Files to "工程名"】,选择SViewControl,点击确定(或者直接拖拽控件包到工程相应目录下)。
  • Xcode工程配置中选择【Build Phases】,在【Link Binary With Libraries】中添加如下系统库:
    libxml2.tbd
    libc++.tbd
    libz.tbd
    libicucore.tbd
    libiconv.tbd
    OpenGLES.framework
    UIKit.framework
    Foundation.framework
    QuartzCore.framework
    CoreGraphics.framework
    AVFoundation.framework
    成功配置后如下图所示:
  • Xcode工程配置中选择【Build Setting】,进行如下两项配置:
    • 【Enable Bitcode】配置为NO
    • 【Other Linker Flags】添加配置–ObjC
    • 成功配置后如下图所示:
  • Xcode工程配置中选择【Info】,添加网络安全请求配置(iOS9.0以上需要配置此项)。
    • 添加App Transport Security Settings,在此配置项下添加Allow Arbitrary Loads并配置为YES
    • 成功配置后如下图所示:
集成SViewFrame控件的过程中需要熟悉控件的文件内容和使用方法,下面我们做出了详细的引用说明和配置管理、控件对象初始化方法等相关说明。详细集成步骤请看如下描述 :
引用声明
使用SViewFrame控件,首先需要声明头文件
#import <SViewFrame/SViewFrame.h>
配置管理
控件对象初始化之前,需要对本地化资源路径、OpenGLES版本和License授权等信息进行初始配置 (此过程建议在程序启动后进行配置)
  • OpenGLES版本号配置(默认为2.0)
    [SParameters setGLESVersion:2.0];
  • License授权设置
    [SParameters setLicense:@"M2VURUFPMCJEVHJPEgQNHhZDbFRoT1YhQ01JT1VFZGVURUFPPk1GTmheRklrTVNPRC1qT05FU11CWWwJQgA="];
  • 资源路径配置
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    [SParameters setAppWorkPath:path];
注意事项:
gles版本设置后重新启动后有效,初次设置在对象初始化之前有效;路径下的文件具有读写的权限;
控件对象初始化
初始化对象,使用方法(指定视图大小):
- (id)initWithFrame:(CGRect)frame withInitMenu:(InitMenu)initMenu;
由于渲染器占用初始化耗时较多,建议使用懒加载方式或者单例模式初始化(保证渲染器只初始化一次)
SViewFrameView *SViewFrameView = [[SViewFrameView alloc] initWithFrame:CGRectMake(0, 120, self.view.frame.size.width, self.view.frame.size.height-120) withInitMenu:^{
                                [self.view addSubview:SViewFrameView];
                                //GLView刷新
                                [[SViewFrameView getSViewBase] setGLViewRefresh:YES];
                                //设置视图默认方向
                                [[SViewFrameView getSViewBase] setDefaultPerspective:PerspectiveDirectionForward];
                                //设置模型默认方向
                                [[SViewFrameView getSViewBase] setDefaultModelDirection:ModelDirectionRight];
                                }];
初始化完成后可根据需要添加到View视图中
需要用到多个SViewFrameView时,只需要重复创建添加多次即可。
注意事项:
  • 程序正常运行时,设置GLView开始界面刷新:
    [[SViewFrameView getSViewBase] setGLViewRefresh:YES];
  • 程序退出或者进入后台运行时,停止GLView的定时刷新:
    [[SViewFrameView getSViewBase] setGLViewRefresh:NO];
    以保证程序不会异常退出。
对象销毁
当对象需要销毁SViewFrame对象时:
SViewFrameView = nil;
SViewFrame集成成功之后,即可根据需求调用基本的功能接口,如仅需要基本的浏览功能或需要个性化搭建展示界面的用户,可选择 SViewBase for iOS 集成控件。
调用控件方法
以SViewFrame for iOS API接口文档中打开本地文件接API接口文档中打开本地文件为例
- (void)openFile:(NSString *)filePath;
[SViewFrameView openFile:filePath];
SViewFrameView为控件对象 openFile为控件提供的接口方法 filePath为打开模型文件路径